define(function(require, exports, module) {
    require('basic');
	require('jquerytmpl');
    var config = require('config');
    var user = require('user');

	//console.log(user.boxes.login.addClass('class_name').appendTo('body'))
    $('[data-toggle="tooltip"]').tooltip();

    var model = function(){
        this.init();
        //console.log(config.login)
    };

    model.prototype ={
        init: function(){
            this.getDcList();
            this.topNavHighlight();
        },

        /**
         * 获取数据中心信息,并设置一个默认的数据中心到cookie里
         * @return {[type]} [description]
         */
        getDcList: function(){
            var sf = this;
            var data_str = user.info.leadPost;
            $.ajax({
                type: "GET",
                // url: config.dc_list+data_str,
                url: config.dc_list,
                dataType: 'json',
                success: function(data){
                    $("#dcListTemplate").tmpl(data).appendTo("#dcList");
                    $("#dcListTemplateForPopup").tmpl(data).appendTo("#dcList2");
                    if(!($.cookie('_dc'))){
                        $('#popselectdc').modal({keyboard: false, show: true});
                        $('#submitDcList').on('click',function(e){
                            var dc = $('#dcList2').val();
                            sf.setDc(dc);
                            $('#popselectdc').modal('hide');
                        });
                    }else{
                        sf.setDc($.cookie('_dc'));
                    }
                    //sf.setDc(data[0].name);
                    sf.addEvents();
                },
                error: function(e){
                	if(e.status === 405){
                		$('#poplogin').modal({keyboard: false, show: true});
                	}
                }
            });
        },
        /**
         * 设置选择的数据中心，选择后应该要刷新页面，选择的数据中心应该记录在cookie里
         * @param {[string]} str 数据中心的name字段
         */
        setDc: function(_str){
            var sf = this;
            var data_str = user.info.leadPost+'&name='+_str;
            $.ajax({
                type: "POST",
                url: config.dc_select+data_str,
                dataType: 'json',
                success: function(data){
                    $.cookie('_dc',_str,{path:'/'});
                    sf.loadPageJs();
                    // 由于选择数据中心后页面数据应该刷新，所以所有和页面上展现数据有关的js都要在这里use一下
                    if($('body').hasClass('chart')){
                        seajs.use('buildcharts');
                    }
                },
                error: function(e){
                    $('#error_body').html('').html(e.responseText);
                    $('#error').modal({keyboard: false, show: true});
                }
            });
        },
        loadPageJs: function(){
            var sf = this;
            if($('body').data('page')){ //依据data-page加载js
                seajs.use($('body').data('page'));
            }
        },
        showHistoryWrap: function(){
            var pop = $('#pophistory');
            function creatHTML(_n,_data){//创建命令历史列表
                var page_index = _n ? _n : 0;
                var tmpl = $('#historyommandTemplate');
                var data_str = user.info.leadPost+'&page='+page_index;
                var wrap = $(pop).find('#historyommandWrap');
                wrap.html('<span>……loading</span>');
                function loadHTML(data){
                    wrap.html('');
                    var d = data.Data;
                    for(var i=0;i<d.length;i++){
                        tmpl.tmpl(d[i]).appendTo(wrap);
                    }
                }
                if(_data){
                    loadHTML(_data);
                }else{
                    $.ajax({
                        type: "GET",
                        url: config.history_command+data_str,
                        dataType: 'json',
                        success: loadHTML
                    });
                }
            }
            /**
             * 创建翻页
             * @param  {[number]} _n [默认的起始页数]
             * @return {[type]}    [description]
             */
            function creatNav(_n){//创建命令历史翻页
                var page_index = _n ? _n : 0;
                var tmpl = $('#historyommandTemplate');
                var data_str = user.info.leadPost+'&page='+page_index;
                $.ajax({
                    type: "GET",
                    url: config.history_command+data_str,
                    dataType: 'json',
                    success: function(data){
                        var nav = $(pop).find('nav');
                        nav.html('');
                        var pager = $.creatNav(data.Sum);
                        pager.ul.appendTo(nav);
                        var d = data.Data;
                        var form_text = pager.text.find('.form_text');
                        function trgger(bl){
                            if(page_index<0){
                                page_index=0;
                            }
                            if(page_index>pager.pageNum-1){
                                page_index = pager.pageNum-1;
                            }
                            form_text.val(page_index+1);
                            if(bl){
                                creatHTML(page_index,data);
                            }else{
                                creatHTML(page_index);
                            }
                            
                        }
                        trgger(true);
                        pager.prev.off('click').on('click',function(){
                            page_index--;
                            trgger();
                        });
                        pager.next.off('click').on('click',function(){
                            page_index++;
                            trgger();
                        });
                        pager.text.find('.target_button').off('click').on('click',function(){
                            var val = form_text.val();
                            if(val && $.testNumber(val)){
                                form_text.removeClass('error');
                                page_index = Number(pager.text.find('.form_text').val())-1;
                                trgger();
                            }else{
                                form_text.addClass('error');
                            }
                            
                        });
                    }
                });
            }
            creatNav();
            pop.modal({keyboard: false, show: true,}).off('shown.bs.modal').on('shown.bs.modal',function (e) {
                
            });
        },
        /**
         * 主导航高亮
         * @return {[type]} [description]
         */
        topNavHighlight: function(){
            var hl = $('body').data('page');
            var hltarget = $('#navbar .navbar-nav>li');
            if(hl == 'index'){
                hltarget.eq(0).addClass('active');
            }else if(hl == 'pool' || hl == 'intranet' || hl == 'extranet'){
                hltarget.eq(1).addClass('active');
            }else if(hl == 'project' || hl=='createproject'){
                hltarget.eq(2).addClass('active');
            }else if(hl == 'warehouse'){
                hltarget.eq(3).addClass('active');
            }

        },
        addEvents: function(){
            /**
             * 获取历史记录数据
             */
            var sf = this;
            $('.btn-history').off('click').on('click',function(){
                sf.showHistoryWrap();
            }); //点击"命令历史"按钮出历史命令list浮层
            $('#dcList').off('click').on('click','li a',function(e){ //点击主导航在的数据中心，选择数据中心
                var dc = $(this).text();
                sf.setDc(dc);
                window.location.reload();
            });
            $('#login_date').html($.dateFormat(new Date($.cookie('_login_date')),'yyyy-MM-dd hh:mm:ss'));
            var time_arr = [0.5,1,2,6,12,24,168];
            var reload_time = $.cookie('_reload_time') ? Number($.cookie('_reload_time')) : 0.5;
            function reloadFn(h){
                setTimeout(function(){
                    window.location.reload();
                },h*60*60*1000);
            };
            $('#timeout_btns a').each(function(index,el){
                var i = $.inArray(reload_time, time_arr);
                if(index==i){
                    $(el).addClass('active');
                    reloadFn(reload_time);
                };
                $(el).off('click').on('click',function(){
                    $(el).addClass('active').addClass('active').siblings().removeClass('active');
                    $.cookie('_reload_time',time_arr[index],{path:'/'});
                    reloadFn(time_arr[index]);
                });
            });

        }
    };
    

    module.exports = new model();

    
});

